windows自定义程序开机启动

windows自定义程序开机启动

前言

每次开机之后要手工启动各种服务,有一些程序是自带了添加服务项,添加到开机启动,有一些则没有。昨天刚装完机器,什么开机启动需要自己添加,所以整理了一下开机启动的相关技巧。

windows开启开机启动方法

  • 服务启动
    服务启动是电脑启动时,用户登陆之前启动,有系统服务程序控制。
  • 启动项启动
    启动项是用户登陆之后启动的。

服务启动

添加服务启动

启动example

sc create 服务名 binPath= "路径" start= auto type= share

1
sc create Frpc binPath= "C:/frpc/windows/start.bat" start= auto type= share

cmd添加服务存在问题

通过sc创建的服务在启动的报错: 服务没有响应控制功能
但是!不是所有程序都可以作为服务的方式运行,因为作为服务运行需要能返回运行情况等信息,所以有的程序添加后会出现以下提示:
Windows无法启动 XXX 服务(位于 本地计算机上)。错误1053:服务没有及时响应启动或者控制请求。
解决方法:
既然知道了原因,就有了解决办法,微软有一个srvany.exe可以解决此问题,首先创建一个服务,但是执行文件要选择srvany.exe,然后在另外的属性里面加入要执行的文件信息就可以了。(提前下载srvany.exe到C:\Windows目录下,不要放System32文件夹,因为64位系统会出现兼容性问题)
Srvany.exe下载地址 http://u.x2009.net/q

1
2
3
4
5
6
sc create ServiceName binPath= "C:\Windows\srvany.exe" start= auto
#加入要执行的文件的信息
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters /v Application /t REG_SZ /d "这里填入你要作为服务运行的程序地址比如c:\xxx.exe" /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters /v AppParameters /t REG_SZ /d "如果程序需要参数则填在这里,如果不需要,清空这段文字或者整行" /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName\Parameters /v Application /t REG_SZ /d "这里填入程序运行时所在文件夹(作为环境变量),如果不填,则清除这段内容或者直接删除本行" /f
然后启动服务即可。(其中一条命令即可)
1
2
sc start ServiceName
net start ServiceName

因为操作较为复杂,所以有人写了一款软件,叫SrvanyUI,集成了了srvany.exe,新建服务较为简单(打开软件,点增加服务,选自建服务即可达到相同效果)。
SrvanyUI下载地址 http://u.x2009.net/l
注意:以上所有命令都需要管理员权限才能运行,如果是Windows 8/8.1/10,需要SYSTEM权限才行(在开始菜单里找到命令行提示符,右键里面有使用管理员身份运行)

删除服务启动

删除example

sc delete 服务名

1
sc delete Frpc

启动项启动

直接将启动文件丢在以下目录中: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

windows后台执行

有时候定制cmd的会一直显示console的终端,以下为定制后台执行的方法。
start.vbe:

1
2
set ws=wscript.createobject("wscript.shell")
ws.run "C:/frpc/windows/start.bat /start",0

注意如果开了360软件请将加入可信。

坚持原创技术分享,您的支持将鼓励我继续创作!